The rapid expansion of information service and data processing industries has resulted in a need for computer systems to manage and store large amounts of data. As an example, financial service industry businesses such as banks, mutual fund companies or the like often operate large and complex data processing systems that require access to many hundreds of gigabytes or even terabytes of data. Computer system developers have responded to these types of data storage and information sharing requirements by crating large complex networks. An example of a network that stores data is referred to as a storage area network or SAN. A typical SAN is a collection of data storage systems that are networked with a number of host computer systems that operate as servers to access data stored in the data storage systems. Other networks include wide are networks such as the Internet and local area network such as smaller corporate networks.
Using a SAN as an example network, elements of a typical conventional storage area network implementation include one or more connectivity devices such as high speed data switches or routers that interconnect the various data storage systems to each other and to one or more host or server computer systems (servers) that require access to speed data switches or routers that interconnect the various data storage systems to each other and to one or more host or server computer systems (servers) that require access to (e.g., read and/or write) the data in the data storage systems on behalf of client software applications and/or client computer systems.
A developer or administrator of such a network environment may install one or more distributed network management software applications within the network to manage or administer the various elements (i.e., devices, computer systems, storage systems, etc.) that operate within the network. A network manager (i.e., a person) responsible for management of the network operates the network management software application to perform management tasks such as performance monitoring, network analysis and remote configuration and administration of the various components (i.e., software and hardware resources) operating within the network.
A typical conventional network management software application may have several different software components that execute independently of each other on different computer systems but that collectively interoperate together to perform network management. As an example, conventional designs of storage area network management software applications can include console component, a server component, several agent components, storage components and possibly other software components.
Generally, the server component operates as a central control process within the storage area network management application and coordinates communication between the console, storage and agent components. The console component often executes within a dedicated network management workstation to allow a network administrator to visualize and remotely control and manage the various elements within the storage area network that are graphically represented on an interface presented by the console. Agent components execute on various host computer systems such as servers within the storage area network to manage storage area network entities (i.e., managed resources such as devices). As an example, there may be different respective agents specifically designed (e.g., coded) to remotely manage and control certain vendor-specific data storage systems, databases, switches, and so forth.
Agent components receive remote management commands from the server component and apply functionality associated with those management commands to the managed entities within the storage area network for which those agents are designated to manage. Agents are also responsible for collecting or discovering configuration or management data concerning the network resources that those agents managed. This device discovery data collection process can happen in a scheduled or periodic manner, or in response to a command received from the management server.
Conventional agents operate to collect an entire set of management data from a device and then transmit this collected management data set back to a storage component in a single transmission for access by the network management application. As an example, if an agent is responsible for controlling operation of (i.e., managing) a large capacity data storage system (such as an array of disks), the agent can be configured to periodically capture or discover the current state of all managed resources associated with (i.e., operating within) that storage system. The actual data collection process that the agent performs uses software application programming interfaces to query the data storage system for data indicating the current configuration and operational state of the data storage system. The data storage system responds by sending the agent numerous portions of management data, collectively referred to as a management data set, that contain a snapshot of the state of configuration of the data storage system. The conventional agent then transports the entire management data set to the storage component of the management application. The storage component of the network management application receives the entire set of collected management data from the agent and processes and stores this information into a storage area network management database for access by the server and console components. This process is repeated for all agents that operate in the network so that the management application can present the current configuration of managed resources within the network. As an example, the console component can interact with the server component and the network management database to obtain current connectivity and statistical information, such as performance, capacity, load or other data, concerning managed entities within the storage area network that was collected by the agents.